<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://webservices.groove.net/Groove/2.0/Contacts/" xmlns:c="http://webservices.groove.net/Groove/2.0/Core/" xmlns:e="http://webservices.groove.net/Groove/2.0/Events/" elementFormDefault="qualified" targetNamespace="http://webservices.groove.net/Groove/2.0/Contacts/" version="1.1" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="./Core.xsd" namespace="http://webservices.groove.net/Groove/2.0/Core/" />
  <xs:import schemaLocation="./Events.xsd" namespace="http://webservices.groove.net/Groove/2.0/Events/" />
  <xs:complexType name="Contact">
    <xs:sequence>
      <xs:element name="URI" type="xs:anyURI" />
      <xs:element minOccurs="0" name="Name" type="xs:string" />
      <xs:element minOccurs="0" name="Awareness" type="xs:string" />
      <xs:element name="VCard" type="xs:anyURI" />
      <xs:element minOccurs="0" name="Type" type="xs:string" />
      <xs:element minOccurs="0" name="TimeWentIdle" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Contact" type="tns:Contact" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactSummary">
    <xs:sequence>
      <xs:element name="URI" type="xs:anyURI" />
      <xs:element name="GivenName" type="xs:string" />
      <xs:element name="FamilyName" type="xs:string" />
      <xs:element name="FullName" type="xs:string" />
      <xs:element name="BusinessEmail" type="xs:string" />
      <xs:element name="PersonalEmail" type="xs:string" />
      <xs:element name="City" type="xs:string" />
      <xs:element name="State" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactSummaryList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ContactSummary" type="tns:ContactSummary" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactDirectory">
    <xs:sequence>
      <xs:element name="ID" type="xs:string" />
      <xs:element name="Name" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactDirectoryList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ContactDirectory" type="tns:ContactDirectory" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactAddEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="Contact" type="tns:Contact" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ContactUpdateEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="Contact" type="tns:Contact" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ContactDeleteEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="ContactURI" type="xs:anyURI" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ContactSearchResultsEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="Status" type="xs:string" />
          <xs:element minOccurs="0" name="ContactSummaryList" type="tns:ContactSummaryList" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ContactFetchResultsEventData">
    <xs:complexContent mixed="false">
      <xs:restriction base="e:EventData">
        <xs:sequence>
          <xs:element name="Status" type="xs:string" />
          <xs:element minOccurs="0" name="ContactList" type="tns:ContactList" />
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="Create">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ContactURIList" type="c:URIList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CreateResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="Read">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ContactType" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadResult" type="tns:ContactList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadAvailableDirectories">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="ReadAvailableDirectoriesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ReadAvailableDirectoriesResult" type="tns:ContactDirectoryList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Search">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="CallbackURI" type="xs:anyURI" />
        <xs:element name="TimeToLive" type="xs:int" />
        <xs:element name="Query" type="xs:string" />
        <xs:element name="Directory" type="xs:anyURI" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SearchResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SearchResult" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Fetch">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="CallbackURI" type="xs:anyURI" />
        <xs:element name="TimeToLive" type="xs:int" />
        <xs:element name="URIList" type="c:URIList" />
        <xs:element name="Directory" type="xs:anyURI" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="FetchResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="FetchResult" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>